﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace NamazVakti
{
    public class DateNavigator
    {
        DateTime navigatorDate = DateTime.Now;

        public delegate void DateChangedEvent();
        public event DateChangedEvent DateChanged;

        public NamazVakitleri Current
        {
            get
            {
                return NamazVakti.CurrentTakvim[navigatorDate];
            }
        }

        public void Next()
        {
            navigatorDate = navigatorDate.AddDays(1);
            if (Current == null)
            {
                navigatorDate = navigatorDate.AddDays(-1);
                if (MessageBox.Show("Bugünkü namaz vakti bilgisi mevcut değil. Güncellemek ister misiniz?", "Güncelleme", MessageBoxButtons.YesNo,
               MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                    NamazVakti.CurrentTakvim.Update();
            }
            if (DateChanged != null)
                DateChanged();
        }

        public void Previous()
        {
            navigatorDate = navigatorDate.AddDays(-1);
            if (Current == null)
            {
                if (navigatorDate < DateTime.Now)
                {
                    MessageBox.Show("Bugünden daha eski zamanların namaz vakti bilgisine önceden güncelleme yapılmadıysa erişilemez!", "Dikkat", MessageBoxButtons.OK,
                    MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    navigatorDate = navigatorDate.AddDays(1);
                    return;
                }
                else if (MessageBox.Show("Bugünkü namaz vakti bilgisi mevcut değil. Güncellemek ister misiniz?", "Güncelleme", MessageBoxButtons.YesNo,
               MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                    NamazVakti.CurrentTakvim.Update();
            }
            if (DateChanged != null)
                DateChanged();
        }

        public void Today()
        {
            navigatorDate = DateTime.Now;
            if (Current == null &&
                MessageBox.Show("Bugünkü namaz vakti bilgisi mevcut değil. Güncellemek ister misiniz?", "Güncelleme", MessageBoxButtons.YesNo,
                MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                NamazVakti.CurrentTakvim.Update();

            if (DateChanged != null)
                DateChanged();
        }
    }
}
